#include <iostream>
#include <vector>
#include <string>
#include <set>
using namespace std;
vector<vector<int>> ret;
vector<int> a(100);
vector<int> path;
set<int> Myhash; 

int n,m;
void dfs(int pos)
{
	if(path.size()==m)
	{
		ret.push_back(path);
		return;
	}
	
	for(int i=pos;i<=n;i++)
	{	
		if(Myhash.count(a[i])==0)
		{
			path.push_back(a[i]);
			Myhash.insert(a[i]);
			dfs(i+1);				
			path.pop_back();
			Myhash.erase(a[i]);
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	a[i]=i;
	dfs(1);
	for(auto& i:ret)
	{
		for(int& j:i)
		cout<<j<<' ';
		cout<<endl;		
	}
	
	return 0;
}
